<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    * {
        margin: 0;
        padding: 0;
    }

    li {
        list-style: none;
    }

    #ul1 {
        width: 306px;
        height: 50px;
    }

    #ul1>li {
        float: left;
        width: 100px;
        height: 50px;
        background-color: blueviolet;
        border: 1px black solid;
    }

    #ul2>li {
        width: 306px;
        height: 200px;
        background-color: brown;
        display: none;
    }

    .active {
        background-color: yellow !important
    }

    .active2 {
        display: block !important
    }
</style>

<body>
    <ul id="ul1">
        <li class="active">111</li>
        <li>222</li>
        <li>333</li>
    </ul>

    <ul id="ul2">
        <li class="active2">111</li>
        <li>222222</li>
        <li>333333</li>
    </ul>
</body>

</html>
<script>
    var ul1 = document.querySelector('#ul1')
    var ul2 = document.querySelector('#ul2')

    var lis1 = ul1.children
    var lis2 = ul2.children

    for (i = 0; i < lis1.length; i++) {
        // 添加自定义索引项来控制lis2的类名切换
        lis1[i].index = i;
        lis1[i].onclick = function fn() {           
            //排他思想
            for (j = 0; j < lis1.length; j++) {
                lis1[j].className = ""
                lis2[j].className = ''
            }
            this.className = 'active'
            lis2[this.index].className = 'active2'          
        }
    }
</script>

<!-- 重点：
1. 该类利用事件动态添加类名的方式广泛的应用到后期的tab转换案列中，应被熟记掌握。
2. 该案列中，点击上方的lis1同时也需要切换lis2中的样式，又因为点击项和切换项都是一一对应的，所以可以给lis1的每一项储存
一个自定义变量用于控制lis2的切换。
3. tab切换中因为是点击后给当前项添加类名实现效果，所以需要在每次点击后首先触发排他程序，将类名清空，否则会导致类名重复
添加到所有项。 -->

